package br.brpv.silvestrin.vendas.domain;

import android.os.Parcel;
import android.os.Parcelable;

//TODO tudo string
public class AddedItem implements Parcelable{
    private String id;
    private String orderId;
    private String tpmnt; //pode ser I de incluir ou A de alterar
    private String typeDiscount; //'P' porcentagem 'V' valor //TODO fazer o desconto
    private double valueDiscount;
    //private ItemCfg itemCfg;
    private int amount;
    private double amountFromStock;
    private double price;
    private String obs;
    private String description;
    private String uniMedidaId;
    private String uniMedidaDescr;
    private String valorBruto;
    private String valorLiquido;
    private String codItem;
    private String vItcomid;
    private String stock;

    private boolean allowNoStockSale;


    public AddedItem(int amount,
                     double price,
                     String obs,
                     String typeDiscount,
                     double valueDiscount,
                     String description,
                     String codItem,
                     String vItcomid,
                     String uniMedidaId,
                     String uniMedidaDescr,
                     String stock,
                     boolean allowNoStockSale) {
        this.id = "0";
        //this.itemCfg = itemCfg;
        this.amount = amount;
        this.price = price;
        this.obs = obs;
        this.tpmnt = "I";
        this.typeDiscount = typeDiscount;
        this.valueDiscount = valueDiscount;
        this.description = description;
        this.codItem = codItem;
        this.vItcomid = vItcomid;
        this.uniMedidaId = uniMedidaId;
        this.uniMedidaDescr = uniMedidaDescr;
        this.stock = stock;
        this.allowNoStockSale = allowNoStockSale;
    }
    
    public AddedItem() {
        stock = "0";
    }
    
    public AddedItem(Parcel in) {
        readFromParcel(in);
    }

    private void readFromParcel(Parcel in) {

        amount = new Integer(in.readString());
        price = new Float(in.readString());
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        //parcel.writeString(String.valueOf(codItemCfg));
        //parcel.writeString(descr);
        parcel.writeString(String.valueOf(amount));
        parcel.writeString(String.valueOf(price));
    }


    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public double getTotal(){
        return amount*price;
    }

    public double getTotalBruto(){
        return amount*price;
    }

    public double getTotalLiquido(){
        double ret;
        if(typeDiscount == null) return 0;
        if(typeDiscount.equalsIgnoreCase("P")) ret = amount*price*(100-valueDiscount)/100;
        else ret = amount*price-valueDiscount;
        return ret;
    }

    /*public ItemCfg getItemCfg() {
        return itemCfg;
    }

    public void setItemCfg(ItemCfg itemCfg) {
        this.itemCfg = itemCfg;
    }*/

    public String getObs() {
        return obs;
    }

    public void setObs(String obs) {
        this.obs = obs;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTpmnt() {
        return tpmnt;
    }

    public void setTpmnt(String tpmnt) {
        this.tpmnt = tpmnt;
    }

    public String getTypeDiscount() {
        return typeDiscount;
    }

    public double getValueDiscount() {
        return valueDiscount;
    }


    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }


    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getUniMedidaId() {
        return uniMedidaId;
    }

    public void setUniMedidaId(String uniMedidaId) {
        this.uniMedidaId = uniMedidaId;
    }

    public String getUniMedidaDescr() {
        return uniMedidaDescr;
    }

    public void setUniMedidaDescr(String uniMedidaDescr) {
        this.uniMedidaDescr = uniMedidaDescr;
    }

    public String getValorBruto() {
        return valorBruto;
    }

    public void setValorBruto(String valorBruto) {
        this.valorBruto = valorBruto;
    }

    public String getValorLiquido() {
        return valorLiquido;
    }

    public void setValorLiquido(String valorLiquido) {
        this.valorLiquido = valorLiquido;
    }

    public void setTypeDiscount(String typeDiscount) {
        this.typeDiscount = typeDiscount;
    }

    public void setValueDiscount(double valueDiscount) {
        this.valueDiscount = valueDiscount;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getCodItem() {
        return codItem;
    }

    public void setCodItem(String codItem) {
        this.codItem = codItem;
    }

    public String getvItcomid() {
        return vItcomid;
    }

    public void setvItcomid(String vItcomid) {
        this.vItcomid = vItcomid;
    }

    public String getStock() {
        return stock;
    }

    public boolean isAllowNoStockSale() {
        return allowNoStockSale;
    }

    public void setAllowNoStockSale(boolean allowNoStockSale) {
        this.allowNoStockSale = allowNoStockSale;
    }

    public void setStock(String qtdeEstoque) {
        stock = qtdeEstoque;
    }

    public double getAmountFromStock() {
        return amountFromStock;
    }

    public void setAmountFromStock(double amountFromStock) {
        this.amountFromStock = amountFromStock;
    }
}
